package com.tfjybj.itoo.exam.provider.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tfjybj.itoo.exam.entity.StudentScoreEntity;
import com.tfjybj.itoo.exam.model.PaperRecordModel;
import com.tfjybj.itoo.exam.model.StudentScoreLittlePracticeModel;
import com.tfjybj.itoo.exam.model.StudentScoreModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * StudentScoreDao接口
 * studentScore表
 *
 * @author 任晓帅
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 19:40:28
 */
@Repository("studentScoreDao")
public interface StudentScoreDao extends BaseMapper<StudentScoreEntity> {
	
	//region 模板生成：模糊查询
	/**
     * 根据学号模糊查询studentScore
     *
     * @param studentCode  学号
     * @return 模糊查询的studentScore集合
     * @author 任晓帅
     * @since 2.0.0 2018-11-15 19:40:28
     */
    List<StudentScoreEntity> queryLikeStudentCode(@Param("studentCode") String studentCode);
	//endregion

    /* **********************************以下为非模板生成的内容********************************* */

    int queryIsExistScore(@Param("exameeId") String exameeId, @Param("examionId") String examionId);

    /**
     * 根据试卷id和学生id更新学生总分数
     *
     * @return 查询考试详细信息
     * @author maying
     * @since 2018-11-26 19:54:21
     */
    List<StudentScoreEntity> selPaperDetails(@Param("stuScore") StudentScoreModel stuScore);

   List<StudentScoreModel>  selectlowclass(@Param("number") String number, @Param("operator") String operator);

    List<StudentScoreModel> selectlowstudent(@Param("number") String number, @Param("templateId") String templateId, @Param("classId") String classId, @Param("operator") String operator);

    /**
     * 根据学生学号，考试类型和考试状态查询学号对应的课程名称、考试名称、考试成绩
     * @param studentCode
     * @param examType
     * @param examState
     * @author 杨月娥-2019年1月27日
     * @return
     */
    List<StudentScoreLittlePracticeModel> selectStudentScoreByStudentIdExam(@Param("studentId") String studentCode, @Param("examType") int examType, @Param("examState") int examState);

    /**
     * 根据考生ID和考场ID和判分状态查询对应的题型名称和题干
     * @param examineeId
     * @param examinationId
     * @author 杨月娥-2019年1月27日
     * @return
     */
    List<PaperRecordModel> selectExamQuestionTypeAndQuestionContent(@Param("examineeId") String examineeId, @Param("examinationId") String examinationId);
    /**
     * 根据学号查询所有成绩，实习系统（小练）
     * @author 谷海涛
     * @since 2019年7月24日11:32:30
     * @param studentCode
     * @return
     */
    List<StudentScoreLittlePracticeModel> selectStudentScoreByStudentCode(@Param("studentCode") String studentCode);
}
